package com.armani.model;

import com.alibaba.fastjson.annotation.JSONField;
import com.armani.entity.OrderDetail;
import com.armani.entity.Snapshot;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @ProjectName: armani
 * @Package: com.armani.model
 * @ClassName: OrderModel
 * @Description: 订单模型
 * @Author: lenovo
 * @Date: 2021/11/28 16:19
 * @Version: 1.0
 **/
@Data
public class OrderModel {
    /**
     * 订单自增id
     */
    private Integer id;
    /**
     * 订单编号
     */
    private String orderNum;
    /**
     * 下单时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date orderTime;
    /**
     * 用户id
     */
    private Integer userId;
    /**
     * 订单状态（1-未付款、2-已付款、3-未发货、4-已发货、5-交易成功、6-交易关闭）
     */
    private Integer state;
    /**
     * 订单总价（精确2位小数）
     */
    private BigDecimal totalPrice;
    /**
     * 优惠金额（精确2位小数）
     */
    private BigDecimal discount;
    /**
     * 运费金额（精确2位小数）
     */
    private BigDecimal freight;

    /**
     * 支付方式（1-微信支付、2-支付宝、3-账户余额）
     */
    private Integer payWay;
    /**
     * 支付金额（精确2位小数）（totalPrice+freight-discount）
     */
    private BigDecimal payment;
    /**
     * 支付时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;
    /**
     * 发货时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date deliverTime;
    /**
     * 收货时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date receiptTime;
    /**
     * 交易完成时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date finishTime;

    /**
     * 快递公司名称
     */
    private String expressComp;
    /**
     * 快递单号
     */
    private Integer expressNum;
    /**
     * 快递公司id
     */
    private Integer expressId;
    /**
     * 订单详情列表
     */
    private List<OrderDetail> itemList;
    /**
     * 订单地址（从快照中取）
     */
    private List<Snapshot> address;
}
